Technical Field
The present technique relates to the field of data processing.
Technical Background
Some data processing apparatuses may support concurrent execution of two or more threads of processing, with hardware registers being provided to store context data for multiple threads concurrently. This approach can be referred to as simultaneous multithreading (SMT), and can help increase the efficiency of utilisation of hardware resources and improve performance because if one thread is stalled another thread can continue to make progress, without incurring the thread switching latency of software-controlled context switches (where the registers only store context for one thread at a time and so an interrupt would trigger software to save the context data for the old thread to memory and replace it with context data for a new thread). With SMT, multiple threads can have instructions in flight within the pipeline simultaneously and the respective sets of context data for each thread may be accessible simultaneously within the hardware registers.